package cn.ml.gaoJi.jiHe.map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

//存储国家英文简称-全称(键-值对)
//map 无序  键是唯一，值不唯一
public class MapDemo {
    public static void main(String[] args) {
        //Map map = new HashMap();
        Map<String,String> map = new HashMap<>();
        map.put("CN","中华人民共和国");
        map.put("RU","俄罗斯联邦");
        map.put("FR","法兰西共和国");
        map.put("US","美利坚合众国");
        //获取map中的元素组（对）数
        System.out.println(map.size());
        //String a = (String) map.get("CN");//通过get获取对应的值
        String a = map.get("CN");//通过get获取对应的值
        System.out.println(a);
        boolean flag = map.containsKey("US");
        System.out.println("集合中是否包含US："+flag);

        //删除特定键对应的键值对
        map.remove("US");
        System.out.println(map.size());

        flag = map.containsKey("US");
        System.out.println("集合中是否包含US："+flag);
        System.out.println("----分别显示map中的键集，值集 和 键值对集--------------------------");
        System.out.println("键的集合----"+map.keySet()+"为set集合");
        System.out.println("值得集合----"+map.values()+"为set集合");
        System.out.println("键值对集合----"+map);
        //map.clear();//清空
        if(map.isEmpty()){
            System.out.println("map集合已经清空");
        }
        System.out.println("----分别获取map中键，值----------------------------------------");
        System.out.println("----111---先获取每个key，然后根据每个key拿到values----------------");
        //先获取每个key，然后根据每个key拿到valueS
        //Set keys = map.keySet();
        /*for (Object s:keys) {  //使用增强型for拿到每个key
            String key = (String) s;
            String value = (String) map.get(key);
            System.out.println(s+"--"+value);
        }*/
        Set<String> keys = map.keySet();
        for (String s:keys){
            String value = map.get(s);
            System.out.println(s+"--"+value);
        }
        System.out.println("----222---使用Iterator迭代器拿到每个key----------------");
        Iterator itor = keys.iterator();
        while (itor.hasNext()){
            String key = (String) itor.next();
            String value = map.get(key);
            //System.out.println(itor.next()+"---"+map.get(key));
            System.out.println(key+"---"+value);
        }
        System.out.println("----333---使用entrySet拿出每一个键值对-------------------");
        /*Set ms = map.entrySet();
        for (Object s:ms){
            Map.Entry me = (Map.Entry) s;//map中的每一个键值对
            Object key = me.getKey();    //取出每个键值对中的键
            Object value = me.getValue();//取出每个键值对中的值
            System.out.println((String)key+"---"+(String)value);
        }*/
        Set<Map.Entry<String,String>> ms = map.entrySet();
        for (Map.Entry<String,String> s:ms) {
            System.out.println(s.getKey() + "---" + s.getValue());
        }


    }

}
